Alex Crichton [Thu, 3 Mar 2016 21:09:52 +0000 (13:09 -0800)]
Update documentation link for API docs
The API docs for Cargo live at doc.crates.io/cargo, not doc.crates.io in
general.
bors [Thu, 3 Mar 2016 19:42:44 +0000 (19:42 +0000)]
Auto merge of #2434 - alexcrichton:bump, r=brson
Alex Crichton [Thu, 3 Mar 2016 19:12:10 +0000 (11:12 -0800)]
Bump to 0.10.0
bors [Thu, 3 Mar 2016 18:20:20 +0000 (18:20 +0000)]
Auto merge of #2433 - alexcrichton:fix-lines-match, r=alexcrichton
Right now we only match a suffix of the line, assuming all lines start with
`[..]`. Instead this ensures that the first match is anchored at the start.
Alex Crichton [Thu, 3 Mar 2016 18:18:02 +0000 (10:18 -0800)]
Fix output matching in tests
Right now we only match a suffix of the line, assuming all lines start with
`[..]`. Instead this ensures that the first match is anchored at the start.
bors [Thu, 3 Mar 2016 01:22:57 +0000 (01:22 +0000)]
Auto merge of #2430 - birkenfeld:doc-menu, r=alexcrichton
crates.io pull request: https://github.com/rust-lang/crates.io/pull/276
Georg Brandl [Wed, 2 Mar 2016 18:54:54 +0000 (19:54 +0100)]
Doc header: change Documentation to Docs to conform with PR to crates.io
bors [Mon, 29 Feb 2016 19:32:24 +0000 (19:32 +0000)]
Auto merge of #2406 - alexcrichton:download-less, r=brson
Currently Cargo will download an entire resolution graph all at once when in fact most packages may not be relevant to a compilation. For example target-specific dependencies and dev-dependencies are unconditionally downloaded regardless of whether they're actually needed or not.
This commit alters the internals of Cargo to avoid downloading everything immediately and just switches to lazily downloading packages. This involved adding a new `LazyCell` primitive (similar to the one in use on crates.io) and also propagates `CargoResult` in a few more locations.
Overall this ended up being a pretty large refactoring so the commits are separated in bite-sized chunks as much as possible with the end goal being this PR itself.
Closes #2394
bors [Fri, 26 Feb 2016 22:33:44 +0000 (22:33 +0000)]
Auto merge of #2419 - dikaiosune:master, r=alexcrichton
Resolves #2417. I also reorganized the order of the items on the page and moved a little bit of text around. I think it's clearer, but critique is more than welcome.
Adam Perry [Fri, 26 Feb 2016 22:15:41 +0000 (15:15 -0700)]
Disambiguating docs about when environment variables are set.
Providing an example of fetching env vars at runtime in a buildscript.
Reordering the list so that examples pertain to the correct sections.
bors [Fri, 26 Feb 2016 21:50:11 +0000 (21:50 +0000)]
Auto merge of #2418 - alexcrichton:update-git2, r=alexcrichton
This crate was recently updated to the next release of libgit2, and I've noticed
historically that a noop `cargo build` was slow in the git2-rs repository.
Curious to see if the new libgit2 version helped speed things up at all, I
tested it out.
Before this commit, a noop `cargo build` produced 599108 syscalls. After this
commit, a noop build produced 86925 syscalls, an 85% reduction in the number of
syscalls! Needless to say it's much faster.
Alex Crichton [Fri, 26 Feb 2016 21:47:56 +0000 (13:47 -0800)]
Update dependency on git2
This crate was recently updated to the next release of libgit2, and I've noticed
historically that a noop `cargo build` was slow in the git2-rs repository.
Curious to see if the new libgit2 version helped speed things up at all, I
tested it out.
Before this commit, a noop `cargo build` produced 599108 syscalls. After this
commit, a noop build produced 86925 syscalls, an 85% reduction in the number of
syscalls! Needless to say it's much faster.
bors [Fri, 26 Feb 2016 19:43:08 +0000 (19:43 +0000)]
Auto merge of #2397 - alexcrichton:config-verbose, r=brson
This commit adds configuration keys for:
[term]
verbose = true
color = 'auto'
These are all meant to be proxies for the command line flags but configured on a
global basis if desired.
Alex Crichton [Fri, 19 Feb 2016 07:26:25 +0000 (23:26 -0800)]
Add configuration keys for -v, --color
This commit adds configuration keys for:
[term]
verbose = true
color = 'auto'
These are all meant to be proxies for the command line flags but configured on a
global basis if desired.
Alex Crichton [Mon, 22 Feb 2016 05:02:20 +0000 (21:02 -0800)]
Stop downloading all packages immediately
Instead delay all downloads until just before they're needed. This should ensure
that we don't download any more packages than we really need to.
bors [Fri, 26 Feb 2016 19:11:13 +0000 (19:11 +0000)]
Auto merge of #2398 - alexcrichton:config-env-var, r=brson
This commit adds a more principled system to rationalize what ends up being a
configuration value versus an environment variable. This problem is solved by
just saying that they're one and the same! Similar to Bundler, this commit
supports overriding the `foo.bar` configuration value with the `CARGO_FOO_BAR`
environment variable.
Currently this is used as part of the `get_string` and `get_i64` methods on
`Config`. This means, for example, that the following environment variables can
now be used to configure Cargo:
* CARGO_BUILD_JOBS
* CARGO_HTTP_TIMEOUT
* CARGO_HTTP_PROXY
Currently it's not supported to encode a list in an environment variable, so for
example `CARGO_PATHS` would not be read when reading the global `paths`
configuration value.
cc #2362
cc #2395 -- intended to close this in tandem with #2397
bors [Thu, 25 Feb 2016 18:47:09 +0000 (18:47 +0000)]
Auto merge of #2415 - kamalmarhubi:doc-env-var-cargo-manifest-dir, r=alexcrichton
Kamal Marhubi [Thu, 25 Feb 2016 17:57:52 +0000 (12:57 -0500)]
doc: Include CARGO_MANIFEST_DIR as being set for crates
bors [Thu, 25 Feb 2016 17:39:25 +0000 (17:39 +0000)]
Auto merge of #2411 - sbeckeriv:cargo-cache-doc-update-1609, r=alexcrichton
Per https://github.com/rust-lang/cargo/issues/1609 "clarify how the cache works"
Added in a single line that states that the cached packages are only
removed by running the clean command.
Please let me know if this is the wrong spot, incorrect information or just silly.
Thanks
becker
bors [Thu, 25 Feb 2016 17:07:27 +0000 (17:07 +0000)]
Auto merge of #2414 - sbeckeriv:document-bit-env-flag-1375, r=alexcrichton
Per https://github.com/rust-lang/cargo/issues/1375
Just add a note around the python script BIT flag.
Stephen Becker IV [Thu, 25 Feb 2016 06:45:08 +0000 (22:45 -0800)]
Fix name
And move line below code block per merge request.
Stephen Becker IV [Thu, 25 Feb 2016 05:27:27 +0000 (21:27 -0800)]
Add a note for the 32 bit flag
Per https://github.com/rust-lang/cargo/issues/1375
Just add a note around the python script flag
Stephen Becker IV [Thu, 25 Feb 2016 03:35:02 +0000 (19:35 -0800)]
Updated text based on pull request
bors [Thu, 25 Feb 2016 00:40:22 +0000 (00:40 +0000)]
Auto merge of #2407 - alexcrichton:better-failed-auth-error, r=brson
This commit is an attempt to improve the error message from failed
authentication attempts as well as attempting more usernames. Right now we only
attempt one username, but there are four different possible choices we could
select (including $USER which we weren't previously trying).
This commit tweaks a bunch of this logic and just in general refactors the
with_authentication function.
Closes #2399
Alex Crichton [Mon, 22 Feb 2016 03:36:35 +0000 (19:36 -0800)]
Auth with more usernames and improve errors
This commit is an attempt to improve the error message from failed
authentication attempts as well as attempting more usernames. Right now we only
attempt one username, but there are four different possible choices we could
select (including $USER which we weren't previously trying).
This commit tweaks a bunch of this logic and just in general refactors the
with_authentication function.
Closes #2399
bors [Wed, 24 Feb 2016 17:12:29 +0000 (17:12 +0000)]
Auto merge of #2400 - JIghtuse:master, r=alexcrichton
Fixes #2378
Boris Egorov [Tue, 23 Feb 2016 17:44:54 +0000 (23:44 +0600)]
Clarify third party subcommand failure error message
Fixes #2378
Stephen Becker IV [Wed, 24 Feb 2016 07:23:39 +0000 (23:23 -0800)]
Add information package caching.
Per https://github.com/rust-lang/cargo/issues/1609
Added in a single line that states that the cached packages are only
removed by running the clean command.
bors [Wed, 24 Feb 2016 01:06:16 +0000 (01:06 +0000)]
Auto merge of #2369 - alexcrichton:no-more-ar, r=alexcrichton
This is largely no longer needed as we bundle llvm-ar and use that (and it's
cross platform). Note that the underlying support still exists in Cargo as the
flag hasn't been removed from the compiler outright, and older compilers may
still be in use. Just no need to document it so prominently when it's no longer
needed!
bors [Mon, 22 Feb 2016 18:27:31 +0000 (18:27 +0000)]
Auto merge of #2404 - JIghtuse:no_rebuilds_for_local_install, r=alexcrichton
Fixes #2143
Boris Egorov [Sat, 20 Feb 2016 09:18:29 +0000 (15:18 +0600)]
Avoid unnecessary rebuild on local installation
Fixes #2143
Alex Crichton [Mon, 22 Feb 2016 04:58:08 +0000 (20:58 -0800)]
Move Context::get_package to returning a Result
The propagate all the `try!`-s needed upwards
Alex Crichton [Sat, 20 Feb 2016 18:36:09 +0000 (10:36 -0800)]
Implement a fallible PackageSet::get
This function will lazily download the package specified and fill a cell with
that package. Currently this is always infallible because the `PackageSet` is
initialized with all packages, but eventually this will not be true.
Alex Crichton [Fri, 19 Feb 2016 22:14:23 +0000 (14:14 -0800)]
Go through `layout` to get doc dir output directories
Alex Crichton [Fri, 19 Feb 2016 21:49:14 +0000 (13:49 -0800)]
Merge the get/download methods on the Source trait
Nothing currently implements the ability to more efficiently download a set of
packages at any one point in time, and the download/get distinction isn't really
used at all. We can always refactor later, but currently there's no benefit, nor
can it really be seen what the possible benefit is, so let's just merge these
two methods into one and have them operate on one id at a time.
Alex Crichton [Fri, 19 Feb 2016 21:37:55 +0000 (13:37 -0800)]
Remove SourceSet
This isn't used anywhere
Alex Crichton [Fri, 19 Feb 2016 21:34:27 +0000 (13:34 -0800)]
Remove the ability to list packages in PackageSet
If we download lazily, that's excessively wasteful!
Alex Crichton [Fri, 19 Feb 2016 21:16:14 +0000 (13:16 -0800)]
Move the `get_package` step later when calculating deps
Future calls to `get_package` may end up actually downloading a package, so we
want to defer this as late as possible to ensure that we don't download
anything.
Alex Crichton [Fri, 19 Feb 2016 19:15:39 +0000 (11:15 -0800)]
Refactor build script output state initialization
Like with the previous refactor, remove the need to list all packages in a
package set as we only need to lazily do this for the actual packages being
compiled. Whenever a build script is requested to be executed is when we
actually go and try to see if an override was in play.
Alex Crichton [Fri, 19 Feb 2016 19:02:17 +0000 (11:02 -0800)]
Refactor links validation to not use PackageSet
Eventually we may not have the entire set of packages resident in memory, so
refactor the implementation to validate the `links` attribute in a demand driven
way rather than all at once up front.
Alex Crichton [Fri, 19 Feb 2016 18:53:57 +0000 (10:53 -0800)]
Fuse SourceMap and PackageSet
This commit moves the SourceMap structure into the PackageSet structure, and
simultaneously massively cuts down on the API surface area of PackageSet. It's
intended that eventually a PackageSet will be a lazily loaded set of packages so
we don't have to download everything all at once, and this is the commit in
preparation of that.
Alex Crichton [Fri, 19 Feb 2016 08:07:22 +0000 (00:07 -0800)]
Read configuration from environment variables
This commit adds a more principled system to rationalize what ends up being a
configuration value versus an environment variable. This problem is solved by
just saying that they're one and the same! Similar to Bundler, this commit
supports overriding the `foo.bar` configuration value with the `CARGO_FOO_BAR`
environment variable.
Currently this is used as part of the `get_string` and `get_i64` methods on
`Config`. This means, for example, that the following environment variables can
now be used to configure Cargo:
* CARGO_BUILD_JOBS
* CARGO_HTTP_TIMEOUT
* CARGO_HTTP_PROXY
Currently it's not supported to encode a list in an environment variable, so for
example `CARGO_PATHS` would not be read when reading the global `paths`
configuration value.
cc #2362
cc #2395 -- intended to close this in tandem with #2397
Alex Crichton [Fri, 19 Feb 2016 07:58:27 +0000 (23:58 -0800)]
Make Config::get private
Don't actually want to expose this, callers need to use the more concrete
methods anyway.
Alex Crichton [Fri, 19 Feb 2016 07:51:52 +0000 (23:51 -0800)]
Refactor configuration return values
Wrap up the value/definition pair in a generic structure so we can extend it
well later.
bors [Thu, 18 Feb 2016 17:12:57 +0000 (17:12 +0000)]
Auto merge of #2393 - WiSaGaN:bugfix/tests-mod-naming, r=alexcrichton
In the default `lib.rs` provided by `cargo-new`, the "test" module is named "test" while Rust convention is using "tests" as the name of the module: https://doc.rust-lang.org/book/testing.html#the-tests-module
The plural form also conforms with the style used in special directories at project root such as "examples" and "tests".
This pull request conforms to the existing style.
Wangshan Lu [Thu, 18 Feb 2016 10:47:28 +0000 (18:47 +0800)]
Fix naming of tests mod in cargo new
bors [Wed, 17 Feb 2016 19:23:14 +0000 (19:23 +0000)]
Auto merge of #2390 - vi:conditionalize_adding_cargo_lock_to_gitignore, r=alexcrichton
For cargo new, it depends on --bin option
For cargo init, it depends on detected files
(--bin option may be used or may be ignored)
No tests conver this code so far.
Vitaly _Vi Shukela [Wed, 17 Feb 2016 19:03:57 +0000 (22:03 +0300)]
cargo init: Implement test for conditional Cargo.lock ignoring
bors [Wed, 17 Feb 2016 18:50:52 +0000 (18:50 +0000)]
Auto merge of #2391 - alexcrichton:update, r=alexcrichton
Fixes compile on nightly
Alex Crichton [Wed, 17 Feb 2016 18:50:05 +0000 (10:50 -0800)]
Update tar-rs dependency
Fixes compile on nightly
bors [Wed, 17 Feb 2016 17:02:27 +0000 (17:02 +0000)]
Auto merge of #2389 - vu3rdd:doc-init, r=alexcrichton
The commit documents the 'cargo init' sub-command in the usage string and in the manpage.
Vitaly _Vi Shukela [Wed, 17 Feb 2016 15:45:51 +0000 (18:45 +0300)]
cargo new/init: Conditionalize adding Cargo.lock to gitignore
For cargo new, it depends on --bin option
For cargo init, it depends on detected files
(--bin option may be used or may be ignored)
No tests conver this code so far.
Ramakrishnan Muthukrishnan [Wed, 17 Feb 2016 08:11:00 +0000 (13:41 +0530)]
document "cargo init"
bors [Tue, 16 Feb 2016 18:51:49 +0000 (18:51 +0000)]
Auto merge of #2328 - alexcrichton:target-specific-deps, r=brson
This commit is an implementation of [RFC 1361][rfc] which is an extension of
Cargo's `target` section in `Cargo.toml` to allow the use of `#[cfg]`-like
expressions for target-specific dependencies. Now that the compiler has been
extended with `--print cfg` each invocation of Cargo will scrape this output and
learn about the relevant `#[cfg]` directives in play for the target being
compiled. Cargo will then use these directives to decide whether a dependency
should be activated or not.
This should allow definition of dependencies along the lines of:
[target.'cfg(unix)'.dependencies]
[target.'cfg(target_os = "linux")'.dependencies]
[target.'cfg(windows)'.dependencies]
Which is much more ergonomic and robust than listing all the triples out!
Alex Crichton [Tue, 26 Jan 2016 00:54:10 +0000 (16:54 -0800)]
Implement cfg-based target-specific dependencies
This commit is an implementation of [RFC 1361][rfc] which is an extension of
Cargo's `target` section in `Cargo.toml` to allow the use of `#[cfg]`-like
expressions for target-specific dependencies. Now that the compiler has been
extended with `--print cfg` each invocation of Cargo will scrape this output and
learn about the relevant `#[cfg]` directives in play for the target being
compiled. Cargo will then use these directives to decide whether a dependency
should be activated or not.
This should allow definition of dependencies along the lines of:
[target.'cfg(unix)'.dependencies]
[target.'cfg(target_os = "linux")'.dependencies]
[target.'cfg(windows)'.dependencies]
Which is much more ergonomic and robust than listing all the triples out!
bors [Sun, 14 Feb 2016 07:23:18 +0000 (07:23 +0000)]
Auto merge of #2387 - alexcrichton:update, r=alexcrichton
The new bundled rust version supports unwinding on 32-bit MSVC!
Alex Crichton [Sun, 14 Feb 2016 07:21:22 +0000 (23:21 -0800)]
Update some dependencies, plus the rust version
The new bundled rust version supports unwinding on 32-bit MSVC!
bors [Fri, 12 Feb 2016 23:03:56 +0000 (23:03 +0000)]
Auto merge of #2365 - japaric:env-gt-config, r=alexcrichton
This patches fixes the precedence in these cases:
- CARGO_TARGET_ROOT is now preferred over build.target-dir
- RUSTC is now preferred over build.rustc
- RUSTDOC is now preferred over build.rustdoc
r? @alexcrichton
bors [Fri, 12 Feb 2016 22:09:11 +0000 (22:09 +0000)]
Auto merge of #2384 - jseyfried:master, r=alexcrichton
r? @alexcrichton
Jeffrey Seyfried [Fri, 12 Feb 2016 21:31:27 +0000 (21:31 +0000)]
Remove non-inline modules in blocks
bors [Fri, 12 Feb 2016 18:46:13 +0000 (18:46 +0000)]
Auto merge of #2382 - carols10cents:pointer-to-release-notes, r=alexcrichton
Connects to #1919 - just adds a note and a link to rust's release notes :) :runner:
Carol (Nichols || Goulding) [Fri, 12 Feb 2016 01:04:04 +0000 (20:04 -0500)]
Add a note about release notes being in Rust's release notes
bors [Thu, 11 Feb 2016 19:51:06 +0000 (19:51 +0000)]
Auto merge of #2370 - alexcrichton:windows-jobs, r=brson
Currently it's somewhat surprising if you're using cargo and it's then ctrl-c'd.
The child processes that Cargo spawned are likely to still be running around in
the background as they're not killed as well, and this could cause output spew
or future build failures.
This situation is handled by default on Unix because ctrl-c will end up sending
a signal to the entire *process group*, which kills everything, but on Windows
we're not as lucky (just Cargo itself is killed). By using job objects on
Windows we can ensure that the entire tree dies instead of just the top Cargo
process.
cc #2343
Alex Crichton [Mon, 8 Feb 2016 19:28:53 +0000 (11:28 -0800)]
Use job objects on windows for ctrl-c to work
Currently it's somewhat surprising if you're using cargo and it's then ctrl-c'd.
The child processes that Cargo spawned are likely to still be running around in
the background as they're not killed as well, and this could cause output spew
or future build failures.
This situation is handled by default on Unix because ctrl-c will end up sending
a signal to the entire *process group*, which kills everything, but on Windows
we're not as lucky (just Cargo itself is killed). By using job objects on
Windows we can ensure that the entire tree dies instead of just the top Cargo
process.
cc #2343
Alex Crichton [Mon, 8 Feb 2016 17:52:08 +0000 (09:52 -0800)]
Remove config references to the `ar` tool
This is largely no longer needed as we bundle llvm-ar and use that (and it's
cross platform). Note that the underlying support still exists in Cargo as the
flag hasn't been removed from the compiler outright, and older compilers may
still be in use. Just no need to document it so prominently when it's no longer
needed!
Jorge Aparicio [Sat, 6 Feb 2016 20:25:52 +0000 (15:25 -0500)]
fix: prefer env variables over config files
This patches fixes the precedence in these cases:
- CARGO_TARGET_ROOT is now preferred over build.target-dir
- RUSTC is now preferred over build.rustc
- RUSTDOC is now preferred over build.rustdoc
bors [Fri, 5 Feb 2016 21:29:28 +0000 (21:29 +0000)]
Auto merge of #2315 - alexcrichton:decode-some-signals, r=brson
Instead of text that looks like
Process failed (signal: 11)
the text now looks like:
Process failed (signal: 11, SIGSEGV: invalid memory reference)
Closes #2315
bors [Fri, 5 Feb 2016 20:52:49 +0000 (20:52 +0000)]
Auto merge of #2359 - matklad:metadata-no-deps, r=alexcrichton
closes #2356. The output is not exactly the same as with `read-manifest`, because I wanted to include the `version` field.
Tests and implementation is a copy-paste from `read-manifest` except that [this line](https://github.com/rust-lang/cargo/blob/master/src/bin/read_manifest.rs#L36) is omited, because `root_package` [does update anyway](https://github.com/rust-lang/cargo/blob/master/src/cargo/sources/path.rs#L51).
Aleksey Kladov [Fri, 5 Feb 2016 00:56:49 +0000 (03:56 +0300)]
metadata: add --no-deps option
The intention is to eventually deprecate `cargo read-manifest`
bors [Fri, 5 Feb 2016 18:32:07 +0000 (18:32 +0000)]
Auto merge of #2335 - fpgaminer:config-target, r=alexcrichton
Fixed #2332.
This PR adds `build.target` to the Cargo config file, which behaves in the same way as passing `--target` to Cargo. Example `.cargo/config`:
```
[build]
target = "thumbv6m-none-eabi"
```
Similar to how `--jobs` overrides `build.jobs`, `--target` will override `build.target`.
I added documentation to `config.md`, and a test to `test_cargo_cross_compile.rs`. I couldn't get cross compile working on my machine for `cargo test`. Hopefully travis passes it.
This is my first PR against Cargo; sorry if I missed any procedures.
bors [Fri, 5 Feb 2016 17:28:04 +0000 (17:28 +0000)]
Auto merge of #2357 - matklad:no-more-warnings-in-tests, r=alexcrichton
Warnings from unrelated tests can be a little disturbing. Maybe we should be stricter about them?
You can always temporary `#![allow(unused, warnings)]` in the module you are writing if you are in the middle of a new development and don't want the compiler putting a spoke in the wheel.
bors [Fri, 5 Feb 2016 17:14:29 +0000 (17:14 +0000)]
Auto merge of #2360 - jedireza:copy-change, r=alexcrichton
jedireza [Fri, 5 Feb 2016 14:22:56 +0000 (14:22 +0000)]
Fix typo on build script page
Aleksey Kladov [Fri, 5 Feb 2016 01:05:41 +0000 (04:05 +0300)]
tests: deny warnings
bors [Tue, 2 Feb 2016 21:12:37 +0000 (21:12 +0000)]
Auto merge of #2355 - alexcrichton:fix-ordering-bug, r=brson
Cargo needs to ensure that if a build script prints a `-L` path that it's the
first `-L` path passed to the compiler. That way the build script can be sure
that any output it generated is the first to be considered by the compiler.
Closes #2354
Alex Crichton [Tue, 2 Feb 2016 19:42:57 +0000 (11:42 -0800)]
Fix DAG ordering of passed -L flags
Cargo needs to ensure that if a build script prints a `-L` path that it's the
first `-L` path passed to the compiler. That way the build script can be sure
that any output it generated is the first to be considered by the compiler.
Closes #2354
bors [Tue, 2 Feb 2016 16:13:02 +0000 (16:13 +0000)]
Auto merge of #2353 - debris:bench_no_run, r=alexcrichton
Closes #2350
debris [Tue, 2 Feb 2016 10:30:28 +0000 (11:30 +0100)]
fixed cargo bench --no-run
bors [Tue, 2 Feb 2016 06:12:10 +0000 (06:12 +0000)]
Auto merge of #2351 - rbtcollins:master, r=alexcrichton
bors [Tue, 2 Feb 2016 04:52:21 +0000 (04:52 +0000)]
Auto merge of #2352 - alexcrichton:new-snapshots, r=alexcrichton
The current snapshot is *super* old (305 days), but as of a few minutes ago it looks like all builds are going to fail with:
```
Updating registry `https://github.com/rust-lang/crates.io-index`
Failed to parse registry's information for: url
Caused by:
the given version requirement is not implemented, yet
```
I believe this is because ages ago the semver library wasn't quite fully implemented. The [most recently published url crate](https://crates.io/crates/url/0.5.4) has a version requirement that looks like `>= foo, < bar` which I believe was implemented at some point in the last year.
As a result if we want to keep building Cargo on bors we'll have to upgrade the snapshot, so this does so! For now just pick the absolute newest Cargo to run with and we reset the counters!
Alex Crichton [Tue, 2 Feb 2016 04:49:06 +0000 (20:49 -0800)]
Register new snapshots
Robert Collins [Tue, 2 Feb 2016 04:37:06 +0000 (17:37 +1300)]
Fix warning about private types in API.
bors [Mon, 1 Feb 2016 22:04:19 +0000 (22:04 +0000)]
Auto merge of #2348 - steveklabnik:gh2337, r=alexcrichton
Fixes #2337
Steve Klabnik [Mon, 1 Feb 2016 22:02:23 +0000 (17:02 -0500)]
Add a test for this too
bors [Mon, 1 Feb 2016 21:13:28 +0000 (21:13 +0000)]
Auto merge of #2344 - Stebalien:upgrade-term, r=alexcrichton
This PR re-upgrades term to 0.4.3. Cargo now detects whether or not
color is supported immediately after creating the TerminfoTerminal.
Backstory:
Before v0.4, term used to return `Ok(true)` if something succeeded,
`Ok(false)` if the operation was unsupported, and `Err(io::Error)` if there
was an IO error. Now, it returns `Ok(())` if the operation succeeds and
`Err(term::Error)` if the operation fails. If the operation is unsupported,
it returns `Err(term::Error::NotSupported)`. This means that, if `op` is
unsupported, `try!(term.op())` will now return an error instead of silently
failing (well, return false but that's effectively silent).
Fixes #2338.
Steven Allen [Mon, 1 Feb 2016 14:48:52 +0000 (09:48 -0500)]
Don't fall back on stderr if color is unavailable
Having a TTY has no bearing on color support.
Steven Allen [Mon, 1 Feb 2016 01:03:14 +0000 (20:03 -0500)]
Detect whether or not the terminal supports color.
Before v0.4, term used to return `Ok(true)` if something succeeded,
`Ok(false)` if the operation was unsupported, and `Err(io::Error)` if
there was an IO error. Now, it returns `Ok(())` if the operation
succeeds and `Err(term::Error)` if the operation fails. If the operation
is unsupported, it returns `Err(term::Error::NotSupported)`. This means
that, if `op` is unsupported, `try!(term.op())` will now return an error
instead of silently failing (well, return false but that's effectively
silent).
Fixes #2338
Steve Klabnik [Mon, 1 Feb 2016 20:12:17 +0000 (15:12 -0500)]
Bump semver version
Fixes #2337
bors [Mon, 1 Feb 2016 19:22:12 +0000 (19:22 +0000)]
Auto merge of #2336 - antonlarin:version-flag-interception-fix, r=alexcrichton
Addresses #2286: when subcommand used `execute_main_without_stdin` and provided `--version` flag, cargo intercepted it and printed it's own version.
bors [Mon, 1 Feb 2016 18:04:03 +0000 (18:04 +0000)]
Auto merge of #2347 - alexcrichton:robust-tests, r=wycats
* Remove the XDG_CONFIG_HOME environment variable as we're resetting HOME
* Add GIT_CONFIG_NOSYSTEM to encourage git to not read that configuration
Closes #2345
Alex Crichton [Mon, 1 Feb 2016 18:02:04 +0000 (10:02 -0800)]
Make tests a little more robust
* Remove the XDG_CONFIG_HOME environment variable as we're resetting HOME
* Add GIT_CONFIG_NOSYSTEM to encourage git to not read that configuration
Closes #2345
Anton Larin [Sun, 31 Jan 2016 16:02:47 +0000 (19:02 +0300)]
Add a test for --version flag interception
Steven Allen [Sat, 30 Jan 2016 20:30:53 +0000 (15:30 -0500)]
Revert "Downgrade term crate back down to 0.2 (from 0.4)."
This reverts commit
75e0371ba0cd8ca235dea4e4178cf4c88dbf2e74.
bors [Sat, 30 Jan 2016 19:58:02 +0000 (19:58 +0000)]
Auto merge of #2340 - gentoo90:bash-comp, r=alexcrichton
gentoo90 [Sat, 30 Jan 2016 18:37:06 +0000 (20:37 +0200)]
Bashcomp: complete init and metadata commands
bors [Sat, 30 Jan 2016 18:30:53 +0000 (18:30 +0000)]
Auto merge of #2339 - pnkfelix:downgrade-term-crate-for-emacs-shell, r=alexcrichton
Downgrade term crate back down to 0.2 (from 0.4).
This is undoing part of commit
dd34296
Fix #2338
(Unfortunately I do not have a suggestion for how to make a unit test for this problem; doing so would require putting in a bit more effort than I have time for at the moment.)
Felix S. Klock II [Sat, 30 Jan 2016 13:57:15 +0000 (14:57 +0100)]
Downgrade term crate back down to 0.2 (from 0.4).
This is undoing part of commit
dd34296
Fix #2338
(Unfortunately I do not have a suggestion for how to make a unit test
for this problem; doing so would require putting in a bit more effort
than I have time for at the moment.)
Anton Larin [Sat, 30 Jan 2016 09:47:25 +0000 (12:47 +0300)]
Fix interception of subcommand --version flag
Addresses #2286: when subcommand used execute_main_without_stdin and
provided --version flag, cargo intercepted it and printed it's own
version.
fpgaminer [Sat, 30 Jan 2016 08:31:42 +0000 (00:31 -0800)]
Set target using config file
bors [Sat, 30 Jan 2016 00:53:14 +0000 (00:53 +0000)]
Auto merge of #2333 - matklad:remove-unused-var, r=alexcrichton
It became unused after https://github.com/rust-lang/cargo/commit/
3194a23a706c17037556c11e7bf4303ea233f208
Is this intentional that unused variables are not denied in tests?